#pragma once
#include "reconstruct3d_global.h"
#include <vector>
#include <SensorUtility/Sensor.h>
#include "DataPreprocessor.h"
#include "VerticesConstructor.h"


class RECONSTRUCT3D_EXPORT ReconstructProcess : public ProcessBase
{
public:
	ReconstructProcess (const ReconstructConfig& iConfig);
	~ReconstructProcess ();

	void initialize ();
	void clean ();

	void grabNewFrameAndProcess ();

	void addSensor (Sensor *pSensor);
	SensorResource& getSensorRes (int idx);
	int getSensorResCount ();

	const QD3DResourcePack* getVerticesPackPtr () const;
	QD3DResourcePack* getVerticesPackPtr ();

private:
	QVector< SensorResource > _sensorReses;

	DataPreprocessor _dataProcessor;
	VerticesConstructor _verticesConstructor;
	//PatternCalibrationProcess _calibrator;

	QD3DResourcePack *_p_verticesPack;

};